import URL from "./url.js";
const tip = {
  1: "抱歉，出现了一个错误",
  1000:	"输入参数错误",
  1001:	"输入的json格式不正确",
  1002:	"找不到资源",
  1003:	"未知错误",
  1004:	"禁止访问",
  1005:	"不正确的开发者key",
  1006:	"服务器内部错误",
  1007: "服务器端不存在请求的URL路径",
  2000:	"你已经点过赞了",
  2001:	"你还没点过赞",
  3000:	"该期内容不存在"
}
export default class HTTP {
  request({url, data={}, method='GET'}) {
    return new Promise((resolve, reject) => {
      this._request(url, resolve, reject, data, method);
    })
  }
  _request(url, resolve, reject, data={}, method='GET') {    // 静态方法，调用的文件可以直接HTTP.request来调用这个方法
    wx.request({
      url,
      header: {
        "content-type": "application/json",
        appKey: URL.appkey
      },
      method,
      data,
      success: res => {   // 除了500以外的所有返回码，都归success函数处理
        let code = res.statusCode.toString();
        if (code.startsWith('2')) {
          resolve(res.data);
        } else {
          reject(res)
          const error_code = res.data.error_code;
          this._show_error(error_code);
        }
      },
      fail: err => {    // 只接受500返回码
        reject(err)
        this._show_error(1);
      }
    })
  }
  _show_error(error_code) {
    if (!error_code) {
      error_code = 1;
    }
    wx.showToast({
      title: tip[error_code] ? tip[error_code] : tip[1],
      icon: 'none',
      duration: 2000
    })
  }
}